
//添加新的自定义文件夹和修改CMakeLists文件之后要删掉build文件夹再编译！！！
//一定要注意从最顶部文件到项目文件夹的长度不能太长！！！

/*
添加物理按键 https://blog.csdn.net/HC_huangcheng/article/details/110001613
*/


/*
ESP32的ADC在测量1V的电压时，得到的值会低0.1V左右，测量2V时会低0.14V左右
*/

/*
lvgl版本为7.0
*/
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_freertos_hooks.h"
#include "freertos/semphr.h"
#include "esp_system.h"
#include "driver/gpio.h"
#include "freertos/queue.h"
#include "esp_log.h"
#include "key.h"
#include "iic_aht10.h"
#include "lvgl_begin.h"
#include "ina226.h"
#include "timer_soc_test.h"
#include "nvs_blob.h"
//http需要的头文件
// #include "http_server_simple.h"
#include <nvs_flash.h>
#include "protocol_examples_common.h"
#include "wifi_station.h"
#include <esp_http_server.h>
#include "http_server_folder.h"
//aht10接1.8~3.6V

void app_main() {
   vTaskDelay(pdMS_TO_TICKS(1000)); 
   //wifi station
    esp_err_t ret = nvs_flash_init();
    if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
      ESP_ERROR_CHECK(nvs_flash_erase());
      ret = nvs_flash_init();
    }
    ESP_ERROR_CHECK(ret);
    ESP_LOGI(WIFI_TAG, "ESP_WIFI_MODE_STA");
    wifi_init_sta();//* wifi_station.h中设定wifi账号和密码
   //http
   static httpd_handle_t server = NULL;
   server = start_webserver();
   ESP_LOGI(Http_TAG, "connect_handler begin");
   xTaskCreate(connect_handler, "connect_handler", 2048*2, server, 0, NULL);
   //xTaskCreate(disconnect_handler, "disconnect_handler", 2048*2, server, 0, NULL);
   //创建RTOS任务的第一种方法
   xTaskCreatePinnedToCore(iic_aht10_begin,//任务函数
                            "iic_aht10_begin", //任务名字
                            2048*2, //堆栈大小（一般为uint32_t类型,无法配置为1024、2048会出现栈溢出）
                            NULL,//函数参数
                            0, //优先级(数字越小，优先级越低)
                            NULL,//任务句柄
                            1 //核心（C3只有一个）
                            );
   //创建RTOS任务的第二种方法
   //与xTaskCreatePinnedToCore相比没有“核心”参数，一般单核用xTaskCreate就行了
   xTaskCreate(guiTask, "guitask", 2048*2, NULL, 0, NULL);//加入wifi之后gui的vTaskDelay时间要变短才能响应按键
   xTaskCreate(ina226_begin, "ina226_begin", 2048*2, NULL, 0, NULL);
   xTaskCreate(soc_test, "soc_test", 2048*2, NULL, 0, NULL);
    // // //xTaskCreatePinnedToCore(continuous_read, "continuous_read", 2048*2, NULL, 0, NULL, 1);//ESP32AD精度较差，不采用
   

}
